﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ServiceModel.Channels;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.PromocaoWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ListarPromocaoPorEstabelecimento : System.Web.UI.Page
    {
            
        TableHeaderRow linhaDaTabelaPromocaoPorEstabelecimento = new TableHeaderRow();

        TableHeaderCell celulaTituloDaPromocao = new TableHeaderCell();
        Label labelTituloDaPromocao = new Label();

        TableHeaderCell celulaDesricaoDaPromocao = new TableHeaderCell();
        Label labelDescricaoDaPromocao = new Label();

        TableHeaderCell celulaValidadeDaPromocao = new TableHeaderCell();
        Label labelValidadeDaPromocao = new Label();

        

        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();
        PubClub_Promocao_WS webServicePromocao = new PubClub_Promocao_WS();
        ObjetoRetornoUtil retornoWebService = new ObjetoRetornoUtil();
        ObjetoCliente cliente = new ObjetoCliente();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();
        BindingList<ObjetoEstabelecimento> listaEstabelecimento;
        ObjetoEstabelecimento estabelecimento = new ObjetoEstabelecimento();
        BindingList<ObjetoPromocao> listaPromocaoEstabelecimento;

        protected void Page_Load(object sender, EventArgs e)
        {

            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            listaEstabelecimento = new BindingList<ObjetoEstabelecimento>(webServiceEstabelecimento.ListEstabelecimento());

            if (!Page.IsPostBack)
            {
                foreach (var item in listaEstabelecimento)
                {
                    ListItem itemDaLista = new ListItem();
                    itemDaLista.Value = item.EstabelecimentoId.ToString();
                    itemDaLista.Text = item.NomeFantasia;
                    DropDownListEstabelecimento.Items.Add(itemDaLista);
                }
            }

            labelTituloDaPromocao.Text = "Título da promoção";
            celulaTituloDaPromocao.Controls.Add(labelTituloDaPromocao);
            linhaDaTabelaPromocaoPorEstabelecimento.Cells.Add(celulaTituloDaPromocao);

            labelDescricaoDaPromocao.Text = "Descrição da promoção";
            celulaDesricaoDaPromocao.Controls.Add(labelDescricaoDaPromocao);
            linhaDaTabelaPromocaoPorEstabelecimento.Cells.Add(celulaDesricaoDaPromocao);

            labelValidadeDaPromocao.Text = "Promoção termina em";
            celulaValidadeDaPromocao.Controls.Add(labelValidadeDaPromocao);
            linhaDaTabelaPromocaoPorEstabelecimento.Cells.Add(celulaValidadeDaPromocao);

            linhaDaTabelaPromocaoPorEstabelecimento.HorizontalAlign = HorizontalAlign.Center;

            TabelaPromocaoPorEstabelecimento.Rows.Add(linhaDaTabelaPromocaoPorEstabelecimento);
            TabelaPromocaoPorEstabelecimento.Visible = false;

        }

        protected void DropDownListEstabelecimento_SelectedIndexChanged(object sender, EventArgs e)
        {

            estabelecimento = webServiceEstabelecimento.GetEstabelecimento(Convert.ToInt32(DropDownListEstabelecimento.SelectedValue.ToString()));
            listaPromocaoEstabelecimento = new BindingList<ObjetoPromocao>(webServicePromocao.ListPromocaoByEstabelecimentoId(estabelecimento.EstabelecimentoId,true));

            if (listaPromocaoEstabelecimento.Count == 0)
            {

                LabelAviso.Text = "Esse estabelecimento não possui nenhuma promoção no momento.";
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Visible = true;
            }
            else
            {

                int i = 0;

                foreach (var item in listaPromocaoEstabelecimento)
                {
                    TableRow linhaDaTabelaPromocaoPorEstabelecimento1 = new TableRow();

                    TableCell celulaTituloDaPromocao1 = new TableCell();
                    Label labelTituloDaPromocao1 = new Label();

                    TableCell celulaDesricaoDaPromocao1 = new TableCell();
                    Label labelDescricaoDaPromocao1 = new Label();

                    TableCell celulaValidadeDaPromocao1 = new TableCell();
                    Label labelValidadeDaPromocao1 = new Label();
                    LabelAviso.Visible = false;

                    if (i % 2 != 0)
                    {
                        linhaDaTabelaPromocaoPorEstabelecimento1.CssClass = "odd";
                    }

                    i++;

                    labelTituloDaPromocao1.Text = item.Titulo;
                    celulaTituloDaPromocao1.Controls.Add(labelTituloDaPromocao1);
                    linhaDaTabelaPromocaoPorEstabelecimento1.Cells.Add(celulaTituloDaPromocao1);
               

                    labelDescricaoDaPromocao1.Text = item.Descricao;
                    celulaDesricaoDaPromocao1.Controls.Add(labelDescricaoDaPromocao1);
                    linhaDaTabelaPromocaoPorEstabelecimento1.Cells.Add(celulaDesricaoDaPromocao1);

                    labelValidadeDaPromocao1.Text = Convert.ToDateTime(item.Validade).ToShortDateString();
                    celulaValidadeDaPromocao1.Controls.Add(labelValidadeDaPromocao1);
                    linhaDaTabelaPromocaoPorEstabelecimento1.Cells.Add(celulaValidadeDaPromocao1);

                    linhaDaTabelaPromocaoPorEstabelecimento1.HorizontalAlign = HorizontalAlign.Center;

                    TabelaPromocaoPorEstabelecimento.Rows.Add(linhaDaTabelaPromocaoPorEstabelecimento1);                    

                }

                TabelaPromocaoPorEstabelecimento.Visible = true;
            }
        }
    }
}